#encoding:utf-8
from django.db import models

class Funcion(models.Model):
    descripcion = models.CharField(max_length=100, verbose_name='Función')
    objetivoEstrategico = models.TextField(verbose_name='Objetivo estratégico')
    
    class Meta:
        verbose_name_plural = "Funciones"
        verbose_name = "función"
    
    def __unicode__(self):
        return self.descripcion
    
class LineaPrioritaria(models.Model):
    funcion = models.ForeignKey(Funcion, verbose_name='Función')
    descripcion = models.CharField(max_length=100, verbose_name='Línea Prioritaria de Desarrollo')
    resumen = models.TextField(verbose_name='Resumen')
    
    class Meta:
        verbose_name_plural = "Líneas prioritarias de desarrollo"
        verbose_name = "línea prioritaria de desarrollo"
    
    def __unicode__(self):
        return self.descripcion

class Ambito(models.Model):
    funcion = models.ForeignKey(Funcion, verbose_name='Función')
    descripcion = models.CharField(max_length=100, verbose_name='Ámbito')
    
    class Meta:
        verbose_name_plural = "Ámbitos"
        verbose_name = "ámbito"
        ordering = ['funcion']
    
    def __unicode__(self):
        return self.descripcion

class ObjetivoOperativo(models.Model):
    ambito = models.ForeignKey(Ambito, verbose_name='Ámbito')
    id = models.CharField(max_length=10, primary_key= True, verbose_name='Código', help_text='Redacta los códigos en mayúsculas')
    descripcion = models.TextField(verbose_name='Objetivo')
    
    class Meta:
        verbose_name_plural = "Objetivos operativos"
        verbose_name = "objetivo operativo"
        ordering = ['id']
    
    def __unicode__(self):
        return self.id+" "+self.descripcion
    
    def save(self):
        self.id = self.id.upper()
        super(ObjetivoOperativo, self).save()
    
class MetaIndicador(models.Model):
    objetivoOperativo = models.ForeignKey(ObjetivoOperativo, verbose_name='Objetivo operativo')
    meta = models.TextField(verbose_name='Meta')
    indicador = models.TextField(verbose_name='Indicador')
    
    class Meta:
        verbose_name_plural = "Metas e indicadores"
        verbose_name = "meta e indicador"
        ordering = ['objetivoOperativo']
    
    def __unicode__(self):
        return self.meta